#include <stdio.h>
/*
!!!终端编码改成65001!!!
chcp 65001
《猜拳游戏》
知识点：流程控制，输入输出，随机数
*/
int main(void)
{
    int player;
    int computer;
    puts("##################################");
    puts("#########欢迎来到猜拳游戏#########");
    puts("##################################");
    while (1)
    {
        start:
        puts("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
        Sleep(500);
        puts("1.剪刀 2.石头 3.布 (0.退出)");
        Sleep(500);
        puts("请输入你的选择：");
        // 输入玩家选择 得到返回值
        int res = scanf("%d", &player);
        printf("res结果【%d】<<<\n", res);
        if (res != 1)
        {
            getchar();
            system("cls");
            puts("非法输入！！！请重新输入！！！");
            goto start; // 也可以使用 continue;
        }
        Sleep(500); // 休眠 毫秒数
        printf(">>>>>> [玩家]数字是【%d】\n", player);
        Sleep(500);
        if (player == 0)
        {
            puts("退出游戏 bye ~");
            system("pause");
            return 0;
        }

        switch (player)
        {
        case 1:
            puts(">>>>>> [玩家]出的是【石头】");
            break;
        case 2:
            puts(">>>>>> [玩家]出的是【剪刀】");
            break;
        case 3:
            puts(">>>>>> [玩家]出的是【布】");
            break;
        default:
            puts("输入有误，请重新输入..");
            Sleep(500);
            goto start;
        }
        Sleep(500);
        srand(time(NULL));
        computer = rand() % 3 + 1; // 随机1~3
        printf(">>>>>> [电脑]随机数【%d】\n", computer);
        Sleep(500);
        switch (computer){
        case 1:
            puts(">>>>>> [电脑]出的是【石头】");
            break;
        case 2:
            puts(">>>>>> [电脑]出的是【剪刀】");
            break;
        case 3:
            puts(">>>>>> [电脑]出的是【布】");
            break;
        }

        Sleep(500);

        if (player == computer){
            puts("=====平局=====");
        }else if(player == 1 && computer == 2 || player == 2 && computer == 3 || player == 3 && computer == 1){
            puts(">>>>>> 恭喜[玩家]本局胜利！！");
        }else{
            puts(">>>>>> 遗憾[电脑]本局赢了...");
        }

    }
    return 0;
}